package com.cn.wanxi.servlet;

import com.alibaba.fastjson.JSONObject;
import com.cn.wanxi.model.ResultModel;
import com.cn.wanxi.model.UserModel;
import com.cn.wanxi.service.UserService;
import com.cn.wanxi.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    //只要以后传递的数据具有保密性，则全部用post，
//    查询用get，其他（增加，修改，删除）用post
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        1.得到前端传递过来的数据
        String username = req.getParameter("username");
//        pass和前端传递的json对象的key值一致
//        password随便取名
        String password = req.getParameter("pass");
        String code = req.getParameter("code");
        String sessionCode = (String) req.getSession().getAttribute("code");
//        2.将数据封装到model
        UserModel userModel = new UserModel();
        userModel.setUsername(username);
        userModel.setPassword(password);
        userModel.setCode(code);
        userModel.setSessionCode(sessionCode);
//        第二阶段：是将数据传递到前端，所以需要在service封装model
//        第四阶段：需要接收前端的数据，所以需要将数据在servlet里面封装

//        3.创建服务逻辑层
        UserService userService = new UserServiceImpl();
//        4.接收服务逻辑层返回信息
        ResultModel resultModel = userService.login(userModel);
        if ("success".equals(resultModel.getMsg())) {
            req.getSession().setAttribute("username", username);
        }
//        String result="[{'username':'username','password':'123456'}]";
//        JSONObject jsonObject=new JSONObject();
//        jsonObject.put("aa",result);
//        如果需要将result传递到前端，必须设置位json格式
//        5.将信息返回给前端
        resp.getWriter().println(JSONObject.toJSONString(resultModel));

    }
}
